Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

JsHttpRequest и Opera (при некоторых загадочных условиях не работает) (Dionysius)
Author Message
Dionysius
Заглянувший



Joined: 30 Mar 2006
Posts: 8
Карма: 0
   поощрить/наказать


PostPosted: Fri May 25, 2007 11:34 am (написано за 37 секунд)
   Post subject: JsHttpRequest и Opera (при некоторых загадочных условиях не работает)
Reply with quote

Попытаюсь толково описать проблему.
[description]
Библиотека работает у меня в ИЕ, Огнелисе, Опере. Хорошая библиотека (спасибо Дмитрию). Но вот однажды случилось так, что скрипт работает в ИЕ и Огнелисе, а в Опере - нет. Пишет ошибку:
Quote:
Unknown thread
Error:
name: Error
message: JsHttpRequest: JavaScript code generated by backend is invalid!
Далее идёт код html-документа полностью.
Далее я отредактировал код бэкенда до минимума:
Code (php): скопировать код в буфер обмена
<?php
require_once "includes/JsHttpRequest/JsHttpRequest.php";

$JsHttpRequest =& new JsHttpRequest("windows-1251");

$_RESULT = array (www.php.net/array)(
  "res"     => "бла-бла-бла"
);
?>
Всё равно не работает.
Страничка подключает java-скрипт библиотеки, и два скрипта, использующих её. Первый работает, второй - нет.
Страничка (в разработке) хттп://market.z-nsk.ru/index.php/cPath/329_190
Кнопка "Добавить" работает, кнопка "Заказать" - нет (в Опере).
[/description]
Бьюсь целые сутки - а понять в чём проблема не могу. Подскажите, плиз, куда копать. Или как получить в Опере больше отладочной информации?
Back to top
View user's profile Send private message Send e-mail
Никита Косолaпов
Участник форума



Joined: 08 Aug 2006
Posts: 172
Карма: 9
   поощрить/наказать

Location: Москва

PostPosted: Fri May 25, 2007 1:02 pm (спустя 1 час 27 минут; написано за 48 секунд)
   Post subject:
Reply with quote

поставьте Opera Developer Console (dev.opera.com/tools/)

И еще:
в IE, FF, если послать POST-запрос на market.z-nsk.ru/ajax_cart.php
возвращает
Code (any language): скопировать код в буфер обмена
а в Опере:
Code (any language): скопировать код в буфер обмена
JsHttpRequest.dataReady({ "id": "0", "js": { "info_box_contents": [ { "text": "Корзина пуста" } ] }, "text": "" })
то есть похоже не доходят POST-данные в Опере до backend'a

Last edited by Никита Косолaпов on Fri May 25, 2007 1:15 pm; edited 1 time in total
Back to top
View user's profile Send private message Send e-mail
Dionysius
Заглянувший



Joined: 30 Mar 2006
Posts: 8
Карма: 0
   поощрить/наказать


PostPosted: Fri May 25, 2007 1:10 pm (спустя 8 минут; написано за 1 минуту 8 секунд)
   Post subject:
Reply with quote

Спасибо за информацию.
Будем разбираться.

Last edited by Dionysius on Fri May 25, 2007 1:22 pm; edited 1 time in total
Back to top
View user's profile Send private message Send e-mail
Dionysius
Заглянувший



Joined: 30 Mar 2006
Posts: 8
Карма: 0
   поощрить/наказать


PostPosted: Fri May 25, 2007 1:18 pm (спустя 8 минут; написано за 1 минуту 42 секунды)
   Post subject:
Reply with quote

Никита Косолaпов wrote:
И еще:
в IE, FF, если послать POST-запрос на market.z-nsk.ru/ajax_cart.php
возвращает
Code (any language): скопировать код в буфер обмена
а в Опере:
Code (any language): скопировать код в буфер обмена
JsHttpRequest.dataReady({ "id": "0", "js": { "info_box_contents": [ { "text": "Корзина пуста" } ] }, "text": "" })
Нет, результат одинаковый. Просто в Огнелисе вы перед этим что-то положили в "корзину". А в Опере как раз эта кнопка и не работает.
Back to top
View user's profile Send private message Send e-mail
Никита Косолaпов
Участник форума



Joined: 08 Aug 2006
Posts: 172
Карма: 9
   поощрить/наказать

Location: Москва

PostPosted: Fri May 25, 2007 2:01 pm (спустя 42 минуты; написано за 59 секунд)
   Post subject:
Reply with quote

Так... тогда расскажите механизм пополнения корзины... оно делается функцией LoadCart путем дерганья ajax_cart.php или я не понимаю? :)
Back to top
View user's profile Send private message Send e-mail
Dionysius
Заглянувший



Joined: 30 Mar 2006
Posts: 8
Карма: 0
   поощрить/наказать


PostPosted: Fri May 25, 2007 7:22 pm (спустя 5 часов 21 минуту)
   Post subject:
Reply with quote

Функция LoadCart в качестве аргумента принимает id товара. Передаёт его скрипту ajax_cart.php, который добавляет товар в корзину и возвращает массив строк html-таблицы для вставки в документ, исходя из того, что в корзине имеется + вновь добавленный товар. Далее LoadCart находит нужную таблицу по id и удаляет все её строки, а затем наполняет её полученными строками от скрипта ajax.php.
Повторюсь, что в Опере скрипты не работают, даже если они просто вызывают друг друга и не делают никаких вычислений.
Back to top
View user's profile Send private message Send e-mail
Dionysius
Заглянувший



Joined: 30 Mar 2006
Posts: 8
Карма: 0
   поощрить/наказать


PostPosted: Mon May 28, 2007 9:56 am (спустя 2 дня 14 часов 33 минуты; написано за 3 минуты 31 секунду)
   Post subject:
Reply with quote

Удалось немного разгадать "загадочные" условия:
в Опере ajax не работает, если скрипту index.php передавать в командной строке какие-либо параметры. Это проблемы движка сайта. Будем разбираться дальше.

Когда URL вида site.ru/index.php - всё в порядке, если site.ru/index.php/param_name/param_value/ - Опере сносит голову (не работает ajax).
Back to top
View user's profile Send private message Send e-mail
Guest






Карма: 388
   поощрить/наказать


PostPosted: Tue May 29, 2007 11:25 am (спустя 1 день 1 час 29 минут; написано за 1 минуту 6 секунд)
   Post subject:
Reply with quote

я наверно жудко туплю, но причём тут вообще аякс? :) через куки это реализуется просто и элегантно. и без тормошения сервера по каждому чиху...
Back to top
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
Post a reply
Username
Subject
Господа спамеры и оптимизаторы!

Вы можете даже и не пытаться вставлять в текст поста ссылки - они все равно автоматически удаляются (вернее, тэги <a> заменяются на тэги <u>).

Но если не поверите и все же попытаетесь - как только увидите, что все безрезультатно, удалите свой пост, пожалуйста. Модераторы тоже люди, нехорошо, если они погрязнут в тоннах спама.
     

Disable BBCode in this post
Disable Smilies in this post
    HTML is OFF
BBCode is ON
Smilies are ON
You cannot post new topics in this forum. You can reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML